package com.rxyb.authority.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.rxyb.authority.db.po.OpsAuthorityRole;
import com.rxyb.authority.gateway.dto.role.*;
import com.rxyb.core.respone.R;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author DUYH
 * @since 2020-05-29
 */
public interface OpsAuthorityRoleService extends IService<OpsAuthorityRole> {

    /**
     * 创建
     *
     * @author duyh
     */
    R<CreateRoleRsp> create(CreateRoleReq createRoleReq);

    /**
     * 角色授权
     *
     * @author duyh
     */
    R<AuthRoleRsp> auth(AuthRoleReq authRoleReq);

    /**
     * 详情
     *
     * @author duyh
     */
    R<GetRoleInfoRsp> query(GetRoleInfoReq getRoleInfoReq);

    /**
     * 修改
     *
     * @author duyh
     */
    R<UpdateRoleRsp> update(UpdateRoleReq updateRoleReq);

    /**
     * 删除
     *
     * @author duyh
     */
    R<DeleteRoleRsp> remove(DeleteRoleReq deleteRoleReq);

    /**
     * 列表
     *
     * @author duyh
     */
    R<GetRoleListRsp> list(GetRoleListReq getRoleListReq);


    /**
     * 获取可访问的菜单角色
     *
     * @param menuUrl
     * @return
     */
    List<String> queryRolesByMenu(String menuUrl);
}
